#include "DrugEEPROM.h"

void EEPROM_init() {
    EEPROM_SectorErase(0x0000);  // 擦除整个EEPROM
}

//写入服药记录，1表示服药，0表示未服药
void EEPROM_Write_Record(u8 flag) {
    u8 dat;
    dat = flag ? 0x01 : 0x00;
    EEPROM_write_n(RECORD_ADDR, &dat, 1); // 写入1或0
}

//读取服药记录，返回1表示服药，0表示未服药
u8 EEPROM_Read_Record(void) {
    u8 buf[1];
    EEPROM_read_n(RECORD_ADDR, buf, 1);  // 正确调用批量读取函数
    return buf[0];  // 返回缓冲区第一个字节
}

//写入闹钟时间
void EEPROM_Write_Time(AlarmTime time) {
    u8 time_buf[3];  // 先声明数组
    time_buf[0] = time.hour;
    time_buf[1] = time.minute;
    time_buf[2] = time.second;
    EEPROM_write_n(TIME_ADDR, time_buf, sizeof(time_buf));
}

//读取闹钟时间
AlarmTime EEPROM_Read_Time(void) {
    AlarmTime time;
    u8 time_buf[3];
    EEPROM_read_n(TIME_ADDR, time_buf, sizeof(time_buf));  // 一次性读取3字节
    time.hour = time_buf[0];
    time.minute = time_buf[1];
    time.second = time_buf[2];
    return time;
}